package com.chiyoyo.rabbitmq.framework.dto;

/**
 * @author chil
 * 提供了一组常用于 RabbitMQ 配置中的常量，
 * 这些常量用于处理死信队列和消息的 TTL（存活时间）。
 * 这些常量包括路由键、交换机键和 TTL 值。
 */
public interface BaseRabbitMqConstant {

    /**
     * 获取队列名称。
     */
    String getQueue();

    /**
     * 获取交换机名称。
     */
    String getExchange();

    /**
     * 获取路由键。
     */
    String getRoutingKey();

    /**
     * 获取交换机类型。
     *
     * @return 交换机类型，如：direct、fanout、topic 等。
     */
    String getExchangeType();

    /**
     * 死信交换机使用的路由键。当消息被标记为死信时，
     * 该路由键将用于将消息路由到指定的队列。
     */
    String DLX_ROUTING_KEY = "x-dead-letter-routing-key";

    /**
     * 死信交换机的交换机键。这个交换机将处理所有被标记为死信的消息。
     */
    String DLX_EXCHANGE_KEY = "x-dead-letter-exchange";

    /**
     * 消息的 TTL（存活时间）值。此键指定消息在队列中可以存活的时间（以毫秒为单位），
     * 超过这个时间消息将被标记为死信。
     */
    String DLX_TTL = "x-message-ttl";

    /**
     * 用于创建死信相关组件名称的前缀。
     * 这样可以更容易地区分死信队列、交换机等与普通组件。
     */
    String DLX_PREFIX = "dlx_";
}

